专利摘要:
Establishing a session in a distributed computing environment. The present invention relates to a system and method of establishing a session in a distributed architecture. More specifically, the present invention relates to a system and method for establishing a session between heterogeneous systems, each system configured to communicate messages using a different protocol. The system and method of the present invention provide a gateway module configured to handle message communication, and to perform message conversion and formatting operations to establish a conversation session between heterogeneous systems. (Machine-translation by Google Translate, not legally binding)
公开号:ES2752222A2
申请号:ES201930808
申请日:2019-09-18
公开日:2020-04-03
发明作者:Nenad Bogojevic;Gomes Leonardo Freitas;Raphaël Chabrant;Christophe Allexandre
申请人:Amadeus SAS;
IPC主号:
专利说明:

[0001]
[0002] Establishing a session in a distributed computing environment
[0003]
[0004] Countryside
[0005] The present invention relates to a method and system for establishing a session in a distributed environment. The present invention further relates to a method and system for establishing a session in a distributed environment between systems / servers that communicate using different message protocols.
[0006]
[0007] Background
[0008] Many existing systems are configured to provide an external device with a session that comprises various conversations between the system software applications and the external device and where the external device and the system operate in a client / server mode. US2008 / 288644 describes one of these known systems.
[0009]
[0010] These existing solutions are efficient for homogeneous environments, that is, environments where software applications are involved in a session using a common protocol.
[0011]
[0012] However, with these existing systems, it is particularly difficult to have conversations using different protocols while sharing a common context throughout the entire session. Very often, the context for a given session has to be duplicated for each protocol used by dedicated application servers. Such existing solutions consume data storage and processing capabilities. In particular, existing systems do not provide efficient solutions for gradually migrating from applications that use given protocols to applications that use other protocols while sharing the same context.
[0013]
[0014] In the transition to Infrastructure as a Service (IaaS), it is necessary to natively support the failures that occur during operation while ensuring the continuity of services for users. These failures could be both planned and unplanned, that is, the computers hosting the IaaS may become unavailable, virtual machines may be stopped, and the like. In fact, migration of existing infrastructure to IaaS platforms can pose technical problems Difficult to support: compatibility of storage services, security of virtual machines, security of data, and the like.
[0015]
[0016] EP2501107 describes a methodology for establishing conversations using different protocols while sharing a common context throughout the entire session. However, the solution proposed in EP2501107 is based on routing requests, depending on the detected message protocol, to compatible application servers. As a result, the solution proposed in EP2501107 requires the use of additional computing resources to handle message communication in a heterogeneous client / server architecture.
[0017]
[0018] Summary of the invention
[0019] An object of the present invention is to provide a method and system for establishing a session in a distributed environment that overcomes the limitations of prior art solutions.
[0020]
[0021] Another object of the present invention is the provision of a method and a system to establish a session in a distributed environment that supports different computing platforms configured to exchange messages in a variety of formats, for example a computing platform provided with services that integrate semantics. HTTP (from REST).
[0022]
[0023] These ends are achieved according to the invention with the system and method showing the technical characteristics of the respective independent claims.
[0024]
[0025] According to a first aspect of the present invention, a system for providing an external device with a session in a distributed computerized environment, where the session requires establishing conversations between the external device and the system application servers, operating the device. external and the system in a client / server mode, operating the system in a mode between client mode and server mode, operating the external device in the other mode between client mode and server mode, where each application server processes at least one software application, comprising the system
[0026] at least one service integrator comprising a routing means configured to establish, for a given session, a conversation between the external device and at least one of the application servers,
[0027] wherein the service integrator is configured to exchange messages using a first messaging protocol with a first message format, and
[0028] wherein the at least one application server is configured to exchange messages using a second messaging protocol with a second message format; wherein the system comprises a gateway module configured to handle the exchange of incoming messages, between the service integrator and the at least one application server, and outgoing messages, between the at least one application server and the service integrator, wherein, for each incoming / outgoing message, the gateway module is configured for, with at least one data processor engine:
[0029] receiving a message request from one of the at least one application server and the service integrator to reach the other from between the application server and the service integrator;
[0030] determine if the message has been transmitted in a format that is compatible with the destination message protocol;
[0031] if the message format is identified as incompatible with the destination message protocol, convert the message format to a format that is compatible with the destination message protocol such that an incoming message is converted from the first format to the second format , and an outgoing message is converted from the second format to the first format; and
[0032] transmit the incoming / outgoing message to the desired destination.
[0033]
[0034] It has been found that, by providing the gateway module, it is possible to open a conversation and exchange messages between systems using different message protocols. In addition, the gateway module performs the conversion on each of the incoming / outgoing message, which is in contrast to the identified existing solutions. As a result, the system of the present invention requires fewer computing resources to handle the exchange of messages between systems using incompatible communication protocols. Furthermore, the gateway module is configured to monitor the operation of each connected application server and accordingly inform the Service Integrator (SI) when the operation of an application server is altered. The Service Integrator (SI), using the information received from the gateway module, can adopt the session correlation logic of the routing means, in such a way that session conversations are established only between the external device and the application servers operational. The system can be provided in communication with a session database, which can store the session context attributes established. In the event that one of the application servers fails, another application server can connect to an established open session by accessing the session context attributes of the corresponding session stored in the session database. Additionally, the session database can be configured to store changes made to the session context by the application server during an open session.
[0035]
[0036] In accordance with some embodiments of the present invention, the service integrator is configured to communicate with the gateway module by means of an XML and / or EDIFACT International (IEDI) and / or TCIL protocol.
[0037]
[0038] In accordance with some embodiments of the present invention, the at least one application server is configured to communicate with the gateway module using an HTTP protocol.
[0039]
[0040] According to some embodiments of the present invention, the at least one application server comprises OJF (Java Open Framework) components.
[0041]
[0042] It has been found that, through the provision of the gateway module, it is possible to integrate within the current computing architecture services that support HTTP (REST) semantics. For example, in a Reservation Information System (CRS) equipped with a service integration mechanism (Service Integrator or SI), difficulties may be experienced that complicate the integration phase of HTTP services. In fact, even if the IS module supports services that integrate HTTP (REST) semantics, it uses the technologies of EDIFACT and the Transport Clustering Interconnect Logic (TCIL) protocol to exchange information. The TCIL protocol provides various transport functions (data length, error checking, segmentation, multiplexing). Furthermore, even if the support of the REST / JSON and SOAP / HTTP formats by the JEE platform does not pose any difficulties, the implementation of the IS infrastructure increases the complexity of integration of the OJF components (Open Framework of Java). It has been found that, by providing the gateway module, it is possible to convert all incoming traffic from the SI into a conventional HTTP format and to convert all of the outgoing HTTP traffic into an XML or EDIFACT format through the protocol from TCIL. As a result, with the system of the present invention, it is possible to provide functional synergy between the service integrator. internal and different conventional computing platform formats, for example a computing platform configured to exchange messages using an HTTP / SOAP protocol. External devices can interact with the system in a client / server mode configuration or vice versa. Therefore, external devices can send queries to the system, or vice versa. Typically, this type of external device may include a personal computer, servers that run websites, and the like. For example, such an external device may be a website that enables users to book and purchase travel and tourism products and services, for example a hotel or car, train or flight rental. The external device may also be a system that is part of a reservation system and that sends queries regarding travel availability (typically, queries regarding flight availability). External devices can also operate in a server mode, while the system is operating in a client mode. Typical examples of such external devices are processing units or data warehouses that supply data to the system. For example, such an external device is a data warehouse operated by a company that provides travel and tourism products and services. The data warehouse can be an inventory in charge of flight availability and operated by an area line or by a global distribution system (GDS).
[0043]
[0044] A conversation is a communication between two components, the components being an external device and a system application server or being two system application servers. Only one protocol is used per conversation.
[0045]
[0046] A transaction comprises all the conversations and processing required to satisfy a query. A call can be initiated by an external device or an application server to establish a conversation.
[0047]
[0048] A session typically comprises a plurality of conversations and may comprise a plurality of transactions. A session can be associated with a context. The context can be generated by the application servers and / or can be provided by an external device.
[0049]
[0050] In accordance with some embodiments of the present invention, the gateway module is configured to simultaneously execute multiple tasks for each incoming and / or outgoing message.
[0051] In accordance with some embodiments of the present invention, said multiple tasks include any one of message conversion, message transmission, session timeout, session cleanup, session monitoring, and application server monitoring.
[0052]
[0053] In accordance with some embodiments of the present invention, the gateway module is configured to execute a number of parallel threads to execute said multiple tasks, wherein the parallel threads are managed through at least one configuration file comprising a number of configurable system parameters.
[0054]
[0055] It has been found that the provision of a configurable multithreaded gateway has the advantage that the operation of the gateway, and the task being performed, can be changed easily and quickly, without the need to reprogram the entire unit . Furthermore, the number of tasks performed by the gateway module can be configured directly by a user, for example an administrator, or a process depending on the needs of the system. Additionally, the system may be able to run a number of parallel threads to run multiple tasks, depending on the needs of the system. The number of parallel threads can be managed through a number of configurable parameters, which can be part of a configuration file. It has been found that, by providing a configurable gateway module, it is possible to easily adjust the functionality of the system, and without the need for major modifications to the remaining parts of the system. As a result, integration of heterogeneous systems can be accomplished more quickly.
[0056]
[0057] In accordance with some embodiments of the present invention, the system comprises at least one session database configured to store the context attributes in an open session.
[0058]
[0059] It has been found that storing context attributes in an open session in a session database has the advantage of quickly connecting an application server with an established open session. Additionally, the session database can be configured to store changes made to the session context by the application server during an open session. Therefore, changes made to the session context can be logged and, if necessary, communicated to other parts of the system.
[0060] In accordance with some embodiments of the present invention, each application server comprises a session downloader component comprising a storage repository configured to store a copy of the session context attributes.
[0061]
[0062] In accordance with some embodiments of the present invention, the session downloader component comprises a session management component configured to monitor changes made to the copy of the session context attributes and update at least partially the context attributes of corresponding session stored in the session database.
[0063]
[0064] In accordance with some embodiments of the present invention, the session downloader component is configured to obtain the context attributes of an open session conversion from the session database.
[0065]
[0066] In accordance with some embodiments of the present invention, the session management component is configured, when changes are detected in the open session conversation, to perform an atomic commit operation with at least some of the attributes of the copy of Session context are updated simultaneously.
[0067]
[0068] In accordance with some embodiments of the present invention, the session management component is configured to prevent expired sessions from being returned to an application server.
[0069]
[0070] It has been found that provisioning the session downloader component with a session management component has the advantage that any changes made to the session context by the application are reflected in the session data stored both locally in the session downloader component, for example in a storage repository such as / or in the session database. Furthermore, the session management component is capable of performing an atomic commit operation. As a result, at least some of the attributes of the stored session context, which can be stored in the session downloader component and / or in the session database, are updated simultaneously. As a result, all inbound / outbound session conversations are provisioned with the latest version of the session context, thereby minimizing the number of failures that can occur, resulting from the use of outdated session data. Furthermore, by providing a Session downloader component, a remote client device can join an open session established running on an application server, for example by means of a web application running on a web server by using session context data stored in the session database.
[0071]
[0072] In accordance with some embodiments of the present invention, the gateway module is configured to establish an internal session, where a first application server is dedicated to the internal session, and to multiplex incoming messages received into at least two external sessions with external devices over the internal session, where the at least two external sessions are associated with the internal session. Multiplexing comprises adding a session identification header to each of the incoming messages, the session identification header comprising an external session identifier indicating the external session with the respective external device that sent the respective incoming message and a application server session indicating the internal session with the first application server. Multiplexing further comprises transmitting the incoming messages with the added session identification headers to the first application server. The gateway module is further configured to demultiplex the outgoing messages received within the internal session from the first application server. Demultiplexing comprises removing, from an outgoing message, the session identification header and transmitting the outgoing message over the external session indicated by the external session identifier.
[0073]
[0074] According to some embodiments of the present invention, a method for providing an external device with a session in a distributed computerized environment, where the session requires establishing conversations between the external device and the system application servers, operating the external device and the system in a client / server mode, the system operating in a mode between the client mode and the server mode, the external device operating in the other mode between the client mode and the server mode, in where each application server processes at least one software application, the method comprises the steps of providing at least one service integrator comprising a routing means that performs at least one step of establishing, for a given session, a conversation between the external device and at least one of the application servers,
[0075] wherein the service integrator is configured to exchange messages using a first messaging protocol with a first message format, and
[0076] wherein the at least one application server is configured to exchange messages using a second messaging protocol with a second message format; wherein the method comprises handling, in a gateway module, the exchange of incoming messages, between the service integrator and the at least one application server, and outgoing messages, between the at least one application server and the service integrator. , where, for each incoming / outgoing message, the gateway module performs, with at least one data processing engine, the steps of:
[0077] - receive a message request from one of the at least one application server and the service integrator to reach the other from between the application server and the service integrator
[0078] - determine if the message has been transmitted in a format that is compatible with the destination message protocol;
[0079] - if the message format is identified as incompatible with the destination message protocol, convert the message format to a format that is compatible with the destination message protocol such that an incoming message is converted from the first format to the second format format, and an outgoing message is converted from the second format to the first format; and
[0080] - transmit the incoming / outgoing message to the desired destination.
[0081]
[0082] According to some embodiments of the present invention, the method comprises, in the gateway module, establishing an internal session, where a first application server is dedicated to the internal session. The method further comprises, in the gateway module, multiplexing the incoming messages received within at least two external sessions with external devices on the internal session, where the at least two external sessions are associated with the internal session. Multiplexing comprises adding a session identification header to each of the incoming messages, the session identification header comprising an external session identifier indicating the external session with the respective external device that sent the respective incoming message and a application server session indicating the internal session with the first application server. Multiplexing further comprises transmitting the incoming messages with the added session identification headers to the first application server. The method further comprises, in the gateway module, demultiplexing of outgoing messages received within the internal session from the first application server. Demultiplexing comprises removing, from an outgoing message, the session identification header and transmitting the outgoing message about the external session indicated by the external session identifier.
[0083]
[0084] Brief description of the drawings
[0085] The following drawings are provided as an example to further explain, and describe, various aspects of the invention.
[0086]
[0087] Figure 1 shows an exemplified system in accordance with some embodiments of the present invention.
[0088]
[0089] Figure 2 shows an exemplified implementation of the gateway module according to some embodiments of the present invention.
[0090]
[0091] Figure 3 shows an exemplified implementation of the session downloader component according to some embodiments of the present invention.
[0092]
[0093] Figure 4 shows an example of a system according to some embodiments of the present invention where the gateway module is integrated together with the application servers on the same server machine.
[0094]
[0095] Figure 5 shows an exemplified embodiment of the TCIL protocol according to some embodiments of the present invention.
[0096]
[0097] Figure 6 illustratively shows the multiplexing of messages from two external sessions on an internal session and a corresponding demultiplexing.
[0098]
[0099] Detailed description
[0100] The present invention will be illustrated using the exemplified embodiments shown in Figures 1 to 6, which will be described in more detail below. It should be noted that any reference made to the dimensions is merely indicative and does not in any way restrict the invention. Although the present invention has been shown and described with reference to certain illustrated embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made therein without departing from the scope of the invention encompassed by the appended claims. Furthermore, although the invention has been described with references to a particular method and / or system for establishing a session in a distributed environment, those skilled in the art should understand that changes in form and details can be made to facilitate other types of method and / or systems without departing from the scope of the invention encompassed by the appended claims.
[0101]
[0102] Figure 1 shows a system in accordance with some embodiments of the present invention. The system is configured to establish a session in a distributed environment between a plurality of external devices 200, 300, 400 and at least one application server A1-C2. Each application server processes a software application. Advantageously, the same software application is independently processed by a plurality of application servers, these application servers running on the same machine or on different machines. The system can also be called a platform. Application servers can be organized into groups, and are also called machines. Because each application server in the same group of application servers processes the same software application, a given software application can be processed in parallel on many application servers. For example, each application server A1, A2 in group 1 processes software application A. Each application server B1, B2 in group 2 processes software application B. Each application server C1, C2 in group 3 processes the application. software C. For a given session, there is only one application server that operates per software application. Therefore, out of a group of application servers that process the same software application, one application server is dedicated to that given session. Each application server that needs to store data is provided with data storage media. The application server dedicated to a given session uses the storage media of the machine it is running on. Therefore, this application server dedicated to a given session can store in these storage media the part of the user context that is relevant to the software application processed by this application server. For example, as shown in Figure 1, each of the application servers A1, ..., C2 can be provided with a session downloader component 60, arranged to store locally, either in dedicated memory or in a database, a copy of the open session context attributes, open session context attributes that can be stored in a session 90 database. A Service Integrator 10 can be provided to establish communication between the 200, 300, 400 external devices and application servers. Service integrator 10 can be provided with a routing means to route the request received from external devices 200, 300, 400 to the appropriate application server running the requested software application. For example, the routing means can be found in the form of an Enterprise Server Bus (ESB) comprising a plurality of ESB components in charge of routing transactions. A call that reaches an ESB component with a request to join a session is forwarded to the ESB component in charge of that session by polling all ESB components with the session ID of that session. The Service Integrator (SI) 10 can be configured to exchange messages in an XML, EDIFACT or EDIFACT International (IEDI) format. On the other hand, the application servers A1, ..., C2, can be a server based on HTTP or on the Simple Object Access Protocol (SOAP) configured to run a web application software application that comprises Framework components. Java Open Workplace (OJF). Application servers A1, ..., C2 can be arranged to communicate using an HTTP / SOAP protocol. In this provision, the messaging protocol of the application servers would be incompatible with the messaging protocol of the Service Integrator 10. A gateway module 30 can be provided to ensure that external devices 200, 300, 400 can access the services offered by the application servers, the gateway module 30 can be configured to handle the exchange of incoming messages, which are messages sent by the Service Integrator 10 to at least one application server, and outgoing messages, which are messages sent from the at least one application server to SI 10. In this way, the gateway module 30 can perform the necessary conversion, thereby facilitating the exchange of messages between system messages having different message communication protocols. The gateway module 30 may comprise a computer program product loaded into system memory and containing a set of executable instructions which, when executed by at least one data processor, results in the system performing the steps of:
[0103] - receiving a message request from one of the at least one application server and SI 10 to reach the other from between the application server and SI 10;
[0104] - determine if the message has been transmitted in a format that is compatible with the destination message protocol;
[0105] - if the message format is identified as incompatible with the destination message protocol, convert the message format to a format that is compatible with the destination message protocol such that an incoming message is converted from the first format to the second format format, and an outgoing message is converted from the second format to the first format; and
[0106] - transmit the incoming / outgoing message to the desired destination.
[0107] The gateway module 30 can be provided as a separate component of the application servers, as shown in Figure 1, or it can be integrated together with the application servers on the same machine, as shown in Figure 4.
[0108]
[0109] Figure 2 shows an example of a gateway module 30 in accordance with some embodiments of the present invention. The gateway module 30 may comprise a processing engine 40 configured to perform a plurality of tasks, including any one of message conversion, message transmission, session timeout, session cleanup, session monitoring, and monitoring of data servers. Applications. The gateway component 30 can perform at least some of the tasks in a multithreaded mode, ie simultaneously, or sequentially, ie one after the other. The mode of operation of the gateway module 30, multithreaded or sequential, can be configured by means of a configuration engine 50, which can comprise at least one configuration file with a set of configuration settings that can be manipulated by such a user as an administrator through a User Interface or another form known to the expert in the field. The gateway component 30 can be configured such that when it detects a failure of an application server A1, ..., C2 for communication of information regarding the application failure to SI 10. In turn, the SI 10 can, using the information received by the gateway module 30, adapt the correlation logic of the routing means, to ensure that a conversion session is established only with the operational application servers A1, ..., C2 , thus avoiding or at least reducing the probability of a session being established with a failed application server, which can reduce the rate of session conversation failure.
[0110]
[0111] As shown in FIG. 3, session downloader 60 can be provided with a storage repository 70 configured to store at least one copy of the session context attributes stored in session database 90. As shown in Figure 3, a session management component 80 can be provided comprising processing logic, which can be configured to monitor changes made to the session context by an open session and update at least partially the attributes of the session context accordingly. session stored in session database 90. Session management component 80 can be configured to perform, upon detection of a change, an atomic commit operation such that at least some of the attributes of the session context , stored locally in the downloader component of Sessions 60 and / or in Session Database 90 are updated simultaneously. Session management component 80 can be configured to prevent expired sessions from being returned to an application, thereby eliminating the need to check expiration before using a session. For example, after the session expires, the session management component 80 may issue a session cleanup key, which is used to clean up the data stored during the session. The cleanup operation may involve cleaning, ie removing, the session data stored in the session database 90 and / or in the session data copy stored locally in the session downloader 60. The cleaning operation can be perform within a predetermined time frame from the issue of the session cleanup key, for example within five minutes of the issue of the cleanup session.
[0112]
[0113] Figure 5 shows an exemplified embodiment of the Transport Clusters Interconnect Logic (TCIL) protocol, which provides various transport functions (data length, error checking, segmentation, multiplexing). One of the main functionalities of TCIL is the provision of physical location transparency to the partners associated with failover strategies. The TCIL protocol can be implemented, for example through TCP / IP or UDP / IP, and even through IPC. As shown in Figure 4, a TCIL message is divided into three parts:
[0114] • the TCIL header with a fixed size
[0115] • TCIL extensions (optional) with variable size
[0116] • and the message data
[0117]
[0118] Regarding the TCIL header format, TCIL messages are encapsulated in TCP segments or passed through IPC mechanisms. TCP / IP headers carry various fields of information, such as source and destination host addresses / ports.
[0119]
[0120] The character set of the alphabetic fields is ASCII. If not specified, the representation is binary and the Big Endian byte order is used.
[0121]
[0122] TCIL is a transport header, which does not depend on the other network layers (lower and upper) and can therefore be used with any conversation protocol, such as IEDI.
[0123] In accordance with some embodiments, the gateway module 30 is configured to establish an internal session, where a first application server A1 is dedicated to the internal session. Therefore, the internal session facilitates communication between gateway module 30 and the first application server A1 such that messages from gateway module 30 to the first application server A1 and messages from the first application server A1 to the gateway module 30 are transmitted via the internal session. As shown in Figure 6, the gateway module 30 multiplexes incoming messages 201, 301 and 401 received within at least two external sessions, such as for example external sessions with external devices 200, 300 and 400, over the internal session , where the at least two external sessions are associated with the internal session. According to the present example, three external sessions with external devices 200, 300 and 400 are associated with the internal session with the first application server A1, that is, the incoming messages from external devices 200, 300 and 400 go away to forward to the first application server A1.
[0124]
[0125] As also shown in Figure 6, multiplexing includes adding a session identification header to each of the incoming messages. According to the current example, header 202 is added to message 201, header 302 is added to message 302, and header 402 is added to message 401. Session identification headers are for example according to the header format. from TCIL. The session identification header includes an external session identifier indicating the external session of the gateway module 30 with the respective external device, in the case of the present example the three external sessions with the external devices 200, 300 and 400 that sent the respective incoming messages 201, 301 and 401. The session identification header further includes an application server session identifier indicating the internal session of the gateway module 30 with the first application server A1.
[0126]
[0127] The external session identifiers that the gateway module 30 includes in the session identification headers of the incoming messages may be different from other session identifiers that are used by the gateway module 30 and the respective external device to maintain and manage the external sessions externally. In order to enable multiplexing and demultiplexing of incoming and outgoing messages, an association between these other session identifiers used outside of system 100 (i.e. by gateway modules 30 and external devices 200, 300, 400) and identifiers external session (which are used internally, ie by the gateway module 30 and the application servers) can be stored as part of the session context attributes. This association can be stored either in the session database 90 or in the gateway module 30 or some other storage medium.
[0128]
[0129] Session identifiers can include session numbers, such as external session numbers associated with external sessions of the gateway module 30 with external devices 200, 300, and 400 and an application server session number associated with the internal session of the module gateway 30 with application server A1. Session numbers can be included in the TCIL extensions of a message (see also Figure 5). The numbers can include any feasible character or sequence of characters within the protocol used, such as the TCIL protocol. Multiplexing further includes transmitting incoming messages 201, 301, and 401 with session identification headers 202, 302, and 402 added via internal session to the first application server A1 by gateway module 30.
[0130]
[0131] The gateway module 30 is further configured to demultiplex outgoing messages, such as messages 203, 303 and 403, which are received within the internal session from the first application server A1. For outgoing messages, such as messages 203, 303, and 403 as shown in Figure 6, application server A1 adds session identification headers 204, 304, and 404 to outgoing messages 203, 303, and 403. Session identification headings 204, 304 and 404 can be found in a TCIL format. The session identification header includes the external session identifier indicating the external session of the gateway module 30 with the respective external device, in the case of the present example the three external sessions with external devices 200, 300 and 400. The header Session identification additionally includes the application server session identifier indicating the internal session of the gateway module 30 with the first application server A1. Session identifiers can include session numbers, such as external session numbers associated with external sessions of the gateway module 30 with external devices 200, 300, and 400 and an application server session number associated with the internal session of the module gateway 30 with application server A1. Session numbers can be included in the TCIL extensions of a message (see also Figure 5). The numbers can include any feasible character or sequence of characters within the protocol used, such as the TCIL protocol. If outgoing messages 203, 303 and 403 are in response to incoming messages 201, 301 and 401, application server A1 can use session identification headers 202, 302 and 402 from the incoming messages and add them as session identification headers 204, 304 and 404 to outgoing messages 203, 303 and 404. In order to facilitate this, application server A1 may store the mapping between headers 202, 302 and 402 and incoming messages 201, 301 and 401 in the context attributes of session, which can be stored either on application server A1 or in session database 90 or on any other storage medium. Demultiplexing includes removing, from outgoing messages 203, 303 and 403, session identification headers 204, 304 and 404 by gateway module 30 and transmitting outgoing messages 203, 303 and 403 by gateway module 30 onto the three corresponding external sessions with external devices 200, 300 and 400 indicated by the external session identifier. For this purpose, the gateway module 30 uses the stored association between the external session identifiers (used internally within system 100) and the other session identifiers (used outside system 100) to translate the external session identifiers received in the Session identification headers 204, 304, 404 of outgoing messages 203, 303, 403 to the other session identifiers used for external transmission of outgoing messages 203, 303, 403 to external devices 200, 300, 400.
[0132]
[0133] The inclusion of a multiplexing and demultiplexing function in gateway module 30 simplifies session management for application servers A1, ..., C2, because each application server needs to maintain only one permanent session to handle multiple transactions with multiple external devices. In accordance with the present example, the first application server A1 maintains the internal session described above as the permanent session with the gateway module 30. Therefore, the workload of the application servers A1 is reduced, ... , C2.
[0134]
[0135] In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, can be referred to herein as "computer program code" or simply "program code". Typically, the program code comprises computer-readable instructions that reside at various times on various memory and storage devices in a computer and which, when read and executed by one or more processors on a computer, result in that computer perform the operations necessary to execute operations and / or elements that embody the various aspects of the embodiments of the invention. The computer readable program instructions for carrying out operations of the embodiments of the invention can be, for example, assembly language or one or the other of source code or object code that is written in any combination of one or more programming languages.
[0136]
[0137] The program code embodied in any of the applications / modules described herein can be distributed individually or collectively as a program product in a variety of different ways. In particular, the program code may be distributed using the computer-readable storage medium having the computer-readable program instructions therein to cause a processor to carry out aspects of the embodiments of the invention.
[0138]
[0139] Computer readable storage media, which are inherently non-transient, can include tangible volatile and non-volatile, removable and non-removable media implemented in any information storage method or technology, such as computer readable instructions, data structures , program modules or other data. Computer readable storage media may additionally include RAM, ROM, erasable and programmable read-only memory (EPROM), electrically erasable and programmable read-only memory (EEPROM), flash memory or other solid-state memory technology, compact disc - portable read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other means that can be used to store the desired information and that can be read by a computer. A computer-readable storage medium should not be construed as transient signals per se (for example, radio waves or other electromagnetic waves that propagate, electromagnetic waves that propagate through transmission media such as a waveguide, or electrical signals transmitted through a wire). Computer readable program instructions can be downloaded to a computer, other programmable data processing apparatus, or other device from a computer readable storage medium or an external computer or an external storage device by means of a network.
[0140]
[0141] Computer-readable program instructions stored on computer-readable media can be used to indicate to a computer, other types of apparatus for programmable data processing or other devices that operate in a particular way such that instructions stored on the computer-readable medium produce an article of manufacture that includes instructions that implement the functions and / or acts specified in the flowcharts, sequence diagrams and / or block diagrams. Computer program instructions may be provided to one or more processors of a general-purpose computer, special-purpose computer, or other programmable data-processing apparatus to produce a machine, such that the instructions, which are executed by means of the one or more processors result in a series of calculations being performed to implement the functions and / or acts specified in the flowcharts, sequence diagrams, and / or block diagrams.
[0142]
[0143] In certain alternative embodiments, the functions and / or acts specified in the flowcharts, sequence diagrams, and / or block diagrams can be rearranged, serially processed, and / or processed simultaneously without departing from the scope of the invention. Furthermore, any of the flowcharts, sequence diagrams and / or block diagrams may include more or less blocks than those illustrated, consistent with the embodiments of the invention.
[0144]
[0145] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the embodiments of the invention. It will be further understood that the terms "comprise" and / or "comprising / comprising", when used in this specification, specify the presence of indicated characteristics, component elements, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other characteristics, component elements, stages, operations, elements, components and / or groups thereof. Likewise, insofar as the expressions "includes", "having / having", "has", "with", "composed of" or variants thereof are used either in the detailed description or in the claims, such expressions are intended to be inclusive in a manner similar to the expression "comprising / comprising".
[0146]
[0147] Although all of the inventions have been illustrated by a description of various embodiments, and although these embodiments have been described in considerable detail, the intent of the applicants of the present invention is not in any way to restrict or limit the scope of the claims attached to such detail. Those of skill in the art will easily come up with additional advantages and modifications. Therefore, the invention is not Limited, in its broadest aspects, to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, divergences from such details can occur without departing from the general inventive concept of applicants of the present invention.
权利要求:
Claims (15)
[1]
1. A system for providing an external device with a session in a distributed computer environment, where the session requires establishing conversations between the external device and the system application servers, operating the external device and the system in a client mode / server, operating the system in a mode between client mode and server mode, operating the external device in the other mode between client mode and server mode, where each application server processes at least a software application, comprising the system
at least one service integrator comprising a routing means configured to establish, for a given session, a conversation between the external device and at least one of the application servers,
wherein the service integrator is configured to exchange messages using a first messaging protocol with a first message format, and
wherein the at least one application server is configured to exchange messages using a second messaging protocol with a second message format; wherein the system comprises a gateway module configured to handle the exchange of incoming messages, between the service integrator and the at least one application server, and outgoing messages, between the at least one application server and the service integrator, wherein, for each incoming / outgoing message, the gateway module (30) is arranged to, with at least one data processor engine:
- receiving a message request from one of the at least one application server and the service integrator to reach the other from between the application server and the service integrator;
- determine if the message has been transmitted in a format that is compatible with the destination message protocol;
- if the message format is identified as incompatible with the destination message protocol, convert the message format to a format that is compatible with the destination message protocol such that an incoming message is converted from the first format to the second format format, and an outgoing message is converted from the second format to the first format; and
- transmit the incoming / outgoing message to the desired destination.
[2]
2. A system (100) according to claim 1, wherein the service integrator is configured to communicate with the gateway module by means of a XML and / or EDIFACT International (IEDI) and / or TCIL protocol.
[3]
3. A system (100) according to claim 1 or 2, wherein the at least one application server is configured to communicate with the gateway module using an HTTP protocol.
[4]
The system according to any one of the preceding claims, wherein the at least one application server comprises OJF (Java Open Framework) components.
[5]
5. The system according to any one of the preceding claims, wherein the gateway module is configured to simultaneously execute multiple tasks for each incoming and / or outgoing message.
[6]
6. The system according to claim 5, wherein said multiple tasks include any one of message conversion, message transmission, session timeout, session cleanup, session monitoring and application server monitoring.
[7]
7. The system according to claim 5 or 6, wherein the gateway module is configured to execute a number of parallel threads to execute said multiple tasks, where the parallel threads are managed through at least one configuration file comprising a number of configurable system parameters.
[8]
8. The system according to any one of the preceding claims, wherein the system comprises at least one session database configured to store the context attributes in an open session.
[9]
9. The system of claim 8, wherein each application server comprises a session downloader component comprising a storage repository configured to store a copy of the session context attributes.
[10]
10. The system according to claim 9, wherein the session downloader component comprises a session management component configured to monitor changes made to the copy of session context attributes and update accordingly at least partially the corresponding session context attributes stored in the session database.
[11]
11. The system according to claim 9 or 10, wherein the session downloader component is configured to obtain the context attributes of an open session conversion from the session database.
[12]
12. The system according to claim 10 or 11, wherein the session management component is configured, when changes are detected in the open session conversation, to perform an atomic commit operation with which at least some of the attributes of the session context copy are updated simultaneously.
[13]
13. The system according to any one of claims 9 to 12, wherein the session management component is configured to prevent expired sessions from being returned to an application server.
[14]
14. The system according to any one of claims 1 to 13, wherein the gateway module is configured to:
- establish an internal session, where a first application server is dedicated to the internal session;
multiplexing the incoming messages received within at least two external sessions with external devices, where the at least two external sessions are associated with the internal session, over the internal session, comprising:
or adding a session identification header to each of the incoming messages, the session identification header comprising an external session identifier indicating the external session with the respective external device that sent the respective incoming message and a session identifier of application server indicating the internal session with the first application server;
o transmit the incoming messages with the session identification headers added to the first application server;
- demultiplex the outgoing messages received within the internal session from the first application server, comprising:
or remove, from an outgoing message, the session identification header; or transmit the outgoing message about the external session indicated by the identifier external session.
[15]
15. A method of endowing an external device with a session in a distributed computer environment, where the session requires establishing conversations between the external device and the system application servers, operating the external device and the system in a client mode. / server, operating the system in a mode between client mode and server mode, operating the external device in the other mode between client mode and server mode, where each application server processes at least a software application, the method comprises the steps of: providing at least one service integrator comprising a routing means that performs at least one step of establishing, for a given session, a conversation between the external device and at least one of application servers, where the service integrator is configured to exchange messages using a first messaging protocol c with a first message format, and
wherein the at least one application server is configured to exchange messages using a second messaging protocol with a second message format; wherein the method comprises managing, by a gateway module, the exchange of incoming messages, between the service integrator and the at least one application server, and outgoing messages, between the at least one application server and the service integrator , where, for each incoming / outgoing message, the gateway module performs, with at least one data processing engine, the steps of:
- receiving a message request from one of the at least one application server and the service integrator to reach the other from between the application server and the service integrator;
- determine if the message has been transmitted in a format that is compatible with the destination message protocol;
- if the message format is identified as incompatible with the destination message protocol, convert the message format to a format that is compatible with the destination message protocol such that an incoming message is converted from the first format to the second format format, and an outgoing message is converted from the second format to the first format; and
- transmit the incoming / outgoing message to the desired destination.
类似技术:
公开号 | 公开日 | 专利标题
US10142226B1|2018-11-27|Direct network connectivity with scalable forwarding and routing fleets
CN103179471B|2016-01-20|For device and the equipment of distribution type fiber-optic channel control plane
US9374241B2|2016-06-21|Tagging virtual overlay packets in a virtual networking system
AU2012228693B2|2014-11-06|Method and system for synchronization mechanism on multi-server reservation system
KR102341809B1|2021-12-21|System and method for supporting a bypass-domain model and a proxy model and updating service information for across-domain messaging in a transactional middleware machine environment
EP2501107B1|2014-01-22|Method and system for providing a session in a heterogeneous environment
US10230795B2|2019-03-12|Data replication for a virtual networking system
KR20130101437A|2013-09-13|Method and system for implementing integrated voice over internet protocol in a cloud-based network
CN105556929A|2016-05-04|Network element and method of running applications in a cloud computing system
US20190141022A1|2019-05-09|On-premise and off-premise communication
US20130007093A1|2013-01-03|Client server communication system
CN102375894B|2013-08-28|Method for managing different types of file systems
CN102427409A|2012-04-25|Configuration data submission method based on network configuration | protocol and server thereof
CN110995777A|2020-04-10|Service management method and device
CN112039942A|2020-12-04|Subscription and publishing method and server
WO2015043679A1|2015-04-02|Moving stateful applications
US10284473B1|2019-05-07|Multifunctional network switch
US10999239B2|2021-05-04|Stateful LISP subscription for overlapping subnetworks
US10348516B2|2019-07-09|On-premise and off-premise communication
ES2752222A2|2020-04-03|Establishing a session in a distributed computing environment |
US9760412B2|2017-09-12|Client server communication system
CN104067261A|2014-09-24|Provisioning tenants to multi-tenant capable services
US20150281046A1|2015-10-01|Method and apparatus for cloud provisioning of communication services
KR20150032085A|2015-03-25|Method for processing huge data and constructing high performance nfv system
US10193998B2|2019-01-29|Communication apparatus, communication system, and circuit configuration control method
同族专利:
公开号 | 公开日
ES2752222R1|2020-04-22|
FR3086135A1|2020-03-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US20090125591A1|2002-09-30|2009-05-14|Ficus Kirkpatrick|Instant messaging proxy apparatus and method|
US7610386B1|2003-04-29|2009-10-27|Blue Titan Software, Inc.|Stateful messaging gateway|
FR2889392A1|2005-07-27|2007-02-02|Alcatel Sa|Message conversion device e.g. active server page script, for Internet network, has processing unit to convert mobile telephone`s HTTP- message-request into simple object access protocol message-request sent to web service module|
法律状态:
2020-04-22| EC2A| Search report published|Ref document number: 2752222 Country of ref document: ES Kind code of ref document: R1 Effective date: 20200415 |
优先权:
申请号 | 申请日 | 专利标题
FR1858414A|FR3086135A1|2018-09-18|2018-09-18|Establishment of a session in a distributed computing environment|
[返回顶部]